home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1985-06-04 | 3.0 KB | 115 lines |
- 10 REM **** CPADAYS ****
- 20 CLOSE
- 100 DEFINT B-Z:DEFSNG A
- 110 DIM A(3000),A3(100),X$(12)
- 130 FOR I=1 TO 12
- 140 READ X$(I)
- 150 NEXT I
- 160 DATA "JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"
- 170 GOSUB 5000 'READ INPUT FILE
- 175 INPUT "Enter project length (days) ",Z9
- 180 Z7=1
- 190 D1=1
- 200 GOSUB 1000 'GET DAY OF CENTURY - A8
- 205 ON ERROR GOTO 700
- 210 PRINT:PRINT "**** READING HOLIDAY FILE: ";F$;".HOL ****"
- 220 GOSUB 8000
- 295 PRINT "**** CALCULATING DAYS - TAKES"1+Z9/10"SECONDS ****"
- 300 GOSUB 1070 'CREATE ARRAY OF MMDDYYS
- 310 INPUT "Want a Particular day, Whole printout, or End (P/W/E) ",Q$
- 320 IF LEFT$(Q$,1)="E" THEN 630
- 330 IF LEFT$(Q$,1)="W" THEN 420
- 350 INPUT "Enter the project day number ",Z2
- 360 IF Z2<Z9+1 THEN 380 ELSE PRINT "**** ERROR - GREATER THAN PROJECT LENGTH ****":BEEP
- 370 GOTO 350
- 380 A6=A(Z2+1)
- 390 GOSUB 1350
- 400 PRINT "**** DAY";Z2;"IS ";P6$;" ****"
- 410 GOTO 310
- 420 OPEN F$+".DAY" FOR OUTPUT AS #2
- 440 PRINT #2,G9$
- 450 PRINT #2," WORKING DAY TO PROJECT DAY NUMBERS FOR: ";P$
- 460 PRINT #2,G9$
- 470 PRINT #2," COL 1 2 3 4 5 6 7 8 9 10"
- 480 PRINT #2," ROW"
- 490 I=0
- 500 PRINT #2, USING " #### ";I;
- 510 FOR I=1 TO Z9+1
- 520 PRINT #2, USING "###### ";A(I);
- 530 IF INT(I/10)=I/10 THEN PRINT #2,G9$ ELSE 550
- 540 PRINT #2, USING " #### ";I;
- 550 NEXT I
- 560 PRINT #2,G9$
- 570 PRINT #2,G9$
- 580 PRINT #2," NOTE: ADD COLUMN NUMBER TO ROW NUMBER TO GET PROJECT DAY NUMBER"
- 590 CLOSE #2
- 600 PRINT "**** ";F$;".DAY HAS BEEN CREATED ****"
- 610 PRINT
- 620 INPUT "Press ENTER to continue ",Q$
- 630 CHAIN "CPAMENU"
- 700 PRINT "**** NO HOLIDAY FILE - CONTINUING ****":RESUME 295
- 1000 L8=2
- 1010 IF INT(Y6/4)=Y6/4 THEN L8=1
- 1020 D7=INT(M6*275/9)+D6-30
- 1030 IF M6>2 THEN D7=D7-L8
- 1040 A8=INT((Y6-1)*1461/4)+D7
- 1050 A9=A8
- 1060 RETURN
- 1070 A(1)=M6*10000+D6*100+Y6
- 1080 D1=D1+1
- 1090 IF D1>Z9+1 THEN RETURN
- 1100 A8=A8+1
- 1110 GOSUB 1190
- 1120 IF LEFT$(T6$,3)="CAL" THEN 1130 ELSE IF D4=6 OR D4=7 THEN 1100
- 1130 O8=0
- 1140 GOSUB 1310
- 1150 IF O8=1 THEN 1100
- 1160 A(D1)=M5*10000+D5*100+Y5
- 1170 GOTO 1080
- 1180 REM ** CONVERT CENTURY DAY TO MM, DD, YY **************************
- 1190 T9=INT(A8/1461)
- 1200 Y5=INT((A8-T9+364)/365)
- 1210 Y4=A8-INT((Y5-1)*1461/4)
- 1220 L8=2
- 1230 IF Y5/4=INT(Y5/4) THEN L8=1
- 1240 T9=Y4
- 1250 IF T9>61-L8 THEN T9=T9+L8
- 1260 M5=INT((T9*9+269)/275)
- 1270 D5=T9-INT(M5*275/9)+30
- 1280 D4=A8-INT(A8/7)*7+1
- 1290 RETURN
- 1300 REM ** HOLIDAY OR NOT ******************************************
- 1310 FOR J=1 TO H9
- 1320 IF A8=A3(J) THEN O8=1
- 1330 NEXT J
- 1340 RETURN
- 1350 P6$=STR$(A6)
- 1360 IF LEN(P6$)=5 THEN P6$=" "+P6$
- 1370 U9=VAL(LEFT$(P6$,2))
- 1380 P6$=X$(U9)+RIGHT$(P6$,4)
- 1390 RETURN
- 5000 REM **** READING IN ALREADY CREATED INPUT FILE ******************
- 5010 INPUT "Enter the name of the input file [.CPM] ";G$
- 5015 IF G$="Q" OR G$="QUIT" THEN 3500
- 5020 P=INSTR(1,G$,"."):IF P<>0 THEN F$=LEFT$(G$,INSTR(1,G$,".")-1) ELSE F$=G$
- 5030 IF LEN(F$)>8 THEN PRINT "**** NOT A VALID PCPM FILE ****":BEEP:GOTO 5010
- 5035 ON ERROR GOTO 5300
- 5037 G$=F$+".CPM"
- 5040 OPEN G$ FOR INPUT AS #3
- 5050 INPUT #3,P$,T6$,DA$
- 5060 M6=VAL(LEFT$(DA$,2)):D6=VAL(MID$(DA$,3,2)):Y6=VAL(RIGHT$(DA$,2))
- 5070 CLOSE #3
- 5080 PRINT " **** INPUT FILE READ ****"
- 5090 RETURN
- 5300 PRINT "**** FILE DOES NOT EXIST - TRY AGAIN ****":BEEP:GOTO 5000
- 8000 ON ERROR GOTO 8200
- 8010 OPEN F$+".HOL" FOR INPUT AS #1
- 8020 J=0
- 8030 J=J+1
- 8040 IF EOF(1) THEN 8100
- 8050 INPUT #1,A3(J)
- 8060 GOTO 8030
- 8100 H9=J-1 'NUMBER OF HOLIDAYS
- 8110 CLOSE #1:RETURN
- 8200 PRINT "**** NO HOLIDAY FILE - CONTINUING ****":RESUME 8110
-